Successful storage and transmission of data may be impeded by errors in the data. A number of factors may cause data corruption. For example, a soft error may result from an unintentional bit flip caused by an alpha particle or noise. As another example, drift or skew due to temperature or voltage variations over time may create a hard error in the data.
Corrective action is usually initiated in response to a detection of the error. For instance, a memory controller may reissue a command after determining that a command was corrupted during transmission. In some instances, the memory controller may initiate a retrain of a link between the memory controller and a memory structure before reissuing the command to the memory structure via the link.
Corrective actions may limit the capability of the memory structure to perform some operations. For example, while retraining the link, the memory controller may be unable to use the link to transmit read and write commands to the memory structure. Reducing the amount of time that the memory controller performs corrective actions may increase the availability of the memory controller to perform normal operations. The increased availability translates into improved efficiency and reduced memory latency. It is therefore desirable to increase the ratio of time spent by the memory controller on normal operations versus corrective actions.